//***********************************************************************
//	File:		Flame.h
//	Author:		
//	Course:		SGP 1405
//	Purpose:	
//***********************************************************************
//***********************************************************************
//	Purposfully left blank for all comments regarding this file 
//	
//	
//	
//***********************************************************************



#pragma once
#include "Projectile.h"

class Emitter; 

class Flame :
	public Projectile
{
public:
	//Trilogy
	Flame(float posX = -1, float posY = -1, Entity* owner = nullptr);
	~Flame() = default;
	Flame(const Flame&) = default;
	Flame& operator =(const Flame&) = default; 

	//Type
	int GetType() const { return ENT_FLAME; }

	// Interface
	void Update(float dt);
	void Render();
	void HandleCollision(const IEntity* pOther);
	void HandleEvent();
	SGD::Rectangle GetRect() const;

	//Accessors
	float		GetRange(void)			{ return m_fRange; }
	Emitter*	GetFlameEffect(void)	{ return m_peFlameEffect; }

	//Mutators
	void		SetRange(float r)			{ m_fRange = r; }
	void		SetFlameEffect(Emitter* fe)	{ m_peFlameEffect = fe; } //not iron

private:
	float m_fRange = 0.0f;
	Emitter* m_peFlameEffect; 
	SGD::Point originalPos = { 0, 0 }; 


};

